#ifndef KEYBOARDINPUT_H
#define KEYBOARDINPUT_H
namespace StompedReality
{
namespace Input
{
/*!
 * \author	Stefan Kazalski
 *
 * \brief	Keyboard input.
 */
class KeyboardInput
{
 protected:

  bool m_PrevKeys[300];
  bool m_CurrentKeys[300];

 public:

  /*!
   * \brief		Constructor.
   */
  KeyboardInput( );

  /*!
   * \brief		Destructor.
   */
  virtual ~KeyboardInput( );

  /*!
   * \brief  Updates the keys.
   *
   * \param		keys	Key state.
   */
  void UpdateKeys ( bool* keys );

  /*!
   * \brief		Is key down check.
   *
   * \param		key  the key
   * \return	True if key is down otherwise false.
   */
  bool IsKeyDown ( const int key );

  /*!
   * \brief		Is key pressed check.
   *
   * \param		key  the key
   * \return	True if key is pressed otherwise false.
   */
  bool IsKeyPressed ( const int key );

  /*!
   * \brief		Is key up check.
   *
   * \param		key  the key
   * \return	True if key is up otherwise false.
   */
  bool IsKeyUp ( const int key );
};

}
}
#endif // KEYBOARDINPUT_H
